package com.ruoyi.ring.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.ring.domain.DailyTags;
import com.ruoyi.ring.mapper.DailyTagsMapper;
import com.ruoyi.ring.service.IDailyTagsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 事件小计Service业务层处理
 * 
 * @author liuwp
 * @date 2025-08-18
 */
@Slf4j
@Service
public class DailyTagsServiceImpl implements IDailyTagsService 
{
    @Resource
    private DailyTagsMapper dailyTagsMapper;

    /**
     * 查询事件小计
     * 
     * @param id 事件小计主键
     * @return 事件小计
     */
    @Override
    public DailyTags selectDailyTagsById(Long id)
    {
        return dailyTagsMapper.selectDailyTagsById(id);
    }

    /**
     * 查询事件小计列表
     * 
     * @param dailyTags 事件小计
     * @return 事件小计
     */
    @Override
    public List<DailyTags> selectDailyTagsList(DailyTags dailyTags)
    {
        return dailyTagsMapper.selectDailyTagsList(dailyTags);
    }

    /**
     * 根据业务主键查询一条记录：事件小计
     *
     * @param dailyTags 事件小计
     * @return 事件小计
     */
    @Override
    public DailyTags selectOneDailyTags(DailyTags dailyTags)
    {
        return dailyTagsMapper.selectOneDailyTags(dailyTags);
    }

    /**
     * 新增事件小计
     * 
     * @param dailyTags 事件小计
     * @return 结果
     */
    @Override
    public int insertDailyTags(DailyTags dailyTags)
    {
        dailyTags.setCreateTime(DateUtils.getNowDate());
        dailyTags.setUserId(SecurityUtils.getUserId());
        return dailyTagsMapper.insertDailyTags(dailyTags);
    }

    /**
     * 修改事件小计
     * 
     * @param dailyTags 事件小计
     * @return 结果
     */
    @Override
    public int updateDailyTags(DailyTags dailyTags)
    {
        dailyTags.setUpdateTime(DateUtils.getNowDate());
        return dailyTagsMapper.updateDailyTags(dailyTags);
    }

    @Override
    public int updateDailyTagsCondition(DailyTags dailyTags, DailyTags dailyTagsCondition)
    {
                dailyTags.setUpdateTime(DateUtils.getNowDate());
        return dailyTagsMapper.updateDailyTagsCondition(dailyTags, dailyTagsCondition);
    }

    /**
     * 批量删除事件小计
     * 
     * @param ids 需要删除的事件小计主键
     * @return 结果
     */
    @Override
    public int deleteDailyTagsByIds(Long[] ids)
    {
        return dailyTagsMapper.deleteDailyTagsByIds(ids);
    }

    /**
     * 删除事件小计信息
     * 
     * @param id 事件小计主键
     * @return 结果
     */
    @Override
    public int deleteDailyTagsById(Long id)
    {
        return dailyTagsMapper.deleteDailyTagsById(id);
    }

    /**
     * 条件删除事件小计
     *
     * @param dailyTags 事件小计
     * @return 结果
     */
    @Override
    public int deleteDailyTagsByCondition(DailyTags dailyTags)
    {
        return dailyTagsMapper.deleteDailyTagsByCondition(dailyTags);
    }

    @Override
    public DailyTags addTag(DailyTags dailyTags) {
        long userId = SecurityUtils.getUserId();
        dailyTags.setUserId(userId);
        dailyTags.setCreateTime(DateUtils.getNowDate());
        int result = dailyTagsMapper.insertDailyTags(dailyTags);
        return result > 0 ? dailyTags : null;
    }

    @Override
    public List<DailyTags> queryDailyTagsList(DailyTags dailyTags) {
        return dailyTagsMapper.queryDailyTagsList(dailyTags);
    }

}
